home *** CD-ROM | disk | FTP | other *** search
/ Programming Languages Suite / ProgramD2.iso / Borland / Borland C++ V5.02 / WORDPAD.PAK / OPTIONS.CPP < prev    next >
C/C++ Source or Header  |  1997-05-06  |  3KB  |  98 lines

  1. // options.cpp : implementation file
  2. //
  3. // This is a part of the Microsoft Foundation Classes C++ library.
  4. // Copyright (C) 1992-1995 Microsoft Corporation
  5. // All rights reserved.
  6. //
  7. // This source code is only intended as a supplement to the
  8. // Microsoft Foundation Classes Reference and related
  9. // electronic documentation provided with the library.
  10. // See these sources for detailed information regarding the
  11. // Microsoft Foundation Classes product.
  12.  
  13. #include "stdafx.h"
  14. #include "wordpad.h"
  15. #include "strings.h"
  16.  
  17. #ifdef _DEBUG
  18. #undef THIS_FILE
  19. static char BASED_CODE THIS_FILE[] = __FILE__;
  20. #endif
  21.  
  22. /////////////////////////////////////////////////////////////////////////////
  23. // CDocOptions
  24.  
  25. void CDocOptions::SaveDockState(CDockState& ds, LPCTSTR lpszProfileName, LPCTSTR lpszLayout)
  26. {
  27.     CMemFile file;
  28.     CArchive ar(&file, CArchive::store);
  29.     ds.Serialize(ar);
  30.     ar.Close();
  31.     int nSize = file.GetLength();
  32.     ASSERT(nSize < 4096);
  33.     BYTE* p = new BYTE[nSize];
  34.     file.SeekToBegin();
  35.     file.Read(p, nSize);
  36.     theApp.WriteProfileBinary(lpszProfileName, lpszLayout, p, nSize);
  37.     delete [] p;
  38. }
  39.  
  40. void CDocOptions::SaveOptions(LPCTSTR lpszProfileName)
  41. {
  42.     SaveDockState(m_ds1, lpszProfileName, szLayout1);
  43.     SaveDockState(m_ds2, lpszProfileName, szLayout2);
  44.     theApp.WriteProfileInt(lpszProfileName, szWrap, m_nWordWrap); 
  45. }
  46.  
  47. void CDocOptions::LoadDockState(CDockState& ds, LPCTSTR lpszProfileName, LPCTSTR lpszLayout)
  48. {
  49.     BYTE* p;
  50.     UINT nLen = 0;
  51.     if (theApp.GetProfileBinary(lpszProfileName, lpszLayout, &p, &nLen))
  52.     {
  53.         ASSERT(nLen < 4096);
  54.         CMemFile file;
  55.         file.Write(p, nLen);
  56.         file.SeekToBegin();
  57.         CArchive ar(&file, CArchive::load);
  58.         ds.Serialize(ar);
  59.         ar.Close();
  60.         delete p;
  61.     }
  62. }
  63.  
  64. void CDocOptions::LoadOptions(LPCTSTR lpszProfileName)
  65. {
  66.     LoadDockState(m_ds1, lpszProfileName, szLayout1);
  67.     LoadDockState(m_ds2, lpszProfileName, szLayout2);
  68.     m_nWordWrap = theApp.GetProfileInt(lpszProfileName, szWrap, m_nDefWrap); 
  69. }
  70.  
  71. /////////////////////////////////////////////////////////////////////////////
  72. // CUnit
  73.  
  74. const CUnit& CUnit::operator=(const CUnit& unit)
  75. {
  76.     m_nTPU = unit.m_nTPU;
  77.     m_nSmallDiv = unit.m_nSmallDiv;
  78.     m_nMediumDiv = unit.m_nMediumDiv;
  79.     m_nLargeDiv = unit.m_nLargeDiv;
  80.     m_nMinMove = unit.m_nMinMove;
  81.     m_nAbbrevID = unit.m_nAbbrevID;
  82.     m_bSpaceAbbrev = unit.m_bSpaceAbbrev;
  83.     m_strAbbrev = unit.m_strAbbrev;
  84.     return *this;
  85. }
  86.  
  87. CUnit::CUnit(int nTPU, int nSmallDiv, int nMediumDiv, int nLargeDiv, 
  88.         int nMinMove, UINT nAbbrevID, BOOL bSpaceAbbrev)
  89. {
  90.     m_nTPU = nTPU;
  91.     m_nSmallDiv = nSmallDiv;
  92.     m_nMediumDiv = nMediumDiv;
  93.     m_nLargeDiv = nLargeDiv;
  94.     m_nMinMove = nMinMove;
  95.     m_nAbbrevID = nAbbrevID;
  96.     m_bSpaceAbbrev = bSpaceAbbrev;
  97. }
  98.